阅读更多

0顶
0踩

企业架构

原创新闻 再论微服务架构之七宗罪

2016-05-31 14:08 by 副主编 mengyidan1988 评论(0) 有6371人浏览
引用

原文链接:7 Deadly Sins of a Microservices Architecture
作者:Martin W Brennan,ViewPop联合创始人
译者:刘帝伟 审核:赵屹华
责编:周建丁(zhoujd@csdn.net)

2014年年底,塔里克·阿贝卓布(TareqAbedrabbo,OpenCredo首席技术官)发表了一篇题为“微服务之七宗罪”的文章,他在此文确定了微服务架构七种常见的反发展模式。2016年一月,来自Voxxed的Danial Bryant发表了该文章的最终版,结合原文以及自己的经验对此文做了进一步的更新。

两人讨论的第一个问题都是构建错误的东西。就像Abedrabbo文章说的那样,可能是由于在定义项目范围和目标时含糊不清所造成的,或者像Bryant说的,试图利用最新的技术,而不是使用最适合特定目标的技术。这两种情况都会导致额外的、不必要的复杂性,因为它们都未集中于项目的最终目标。

不实施契约优先(contract-first)设计方法是项目误入歧途的另一种途径。一个好的服务契约允许开发者专注于微服务是在做什么,而不是专注于它是如何实现的,确定总体目标才是重中之重。

技术实现的细节仍需要解决,Abedrabbo和Bryant两者的文章都提出了通过把单体架构概念运用到微服务架构上面,用以创建分布式单体架构(distributed monolith)。单体架构和微服务架构的交叉也暴露了一个共享域模型问题。

由于应用程序现在通常由多个微服务组成,因此一个应用程序不再是一个刚性边界的单一实体,就好比传统的单体架构案例。开发者可以采用领域驱动设计(Domain-Driven Design,DDD)方法提供一个核心业务概念的演化模型来解决这一问题,这样会更为合适。

这两篇文章同时也表达了对选择错误、太多选择、以及交换信息通信协议的关注。服务功能应该影响协议,而好的方法则是采用标准化的态度,同时使用面向外部服务的同步协议,以及面向内部服务的异步协议。

Abedrabbo强调引进实践证明的DevOps的重要性,正如微服务许可的那样,从一开始就发挥连续传送管道的优势。它从早期开始就支持验收、回归和性能测试自动化,Bryant延续这一主题是为了确保系统在快速移动并经常波动的微服务世界中支持测试。

DevOps这一概念贯彻于Bryant的文章之中,鼓励操作者或系统管理员之间的相互理解。他建议,员工必须接受培训,以应对现实生活中的灾难恢复,这样问题和成功可以通过整个团队进行共享。

人类因素(human factor)是原文的最后一点。微服务可以简化开发并且促进协作精神,但习惯于传统的、大规模的、充满筒仓和政治组织的开发者,对于如何在运行时表现图片服务不可能有更深、更广泛的理解。企业则可以通过投资开发商和鼓励广大组织合作以建立更好的、可持续的、能够利用微服务能力的系统,从而解决这一问题。
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 架构学习资料精选

    架构师技术图谱包括:分布式、前端、大数据、存储、微服务、推荐系统、框架、消息队列、编程语言、设计模式、重构、集群等内容。 体验小程序版「架构师技术图谱」,扫描下方微信小程序码即可。 欢迎订阅《码农周刊...

  • 一个架构师谈什么是架构,以及怎么成为架构师

    来点轻松的话题。我们调剂一下后再继续讲CAS SSO单点登录吧因为后面的内容全部和代码有关,大家会觉得枯燥。所以今天我们先来点”番外篇“,讲讲什么是架构师,什么是架构这个永恒的话题吧。此...

  • 架构师素养及从小菜进阶架构师(2)

    支付宝架构师:讲述从工程师到架构师的成长之路- http://blog.csdn.net/Gupaoxueyuan/article/details/79089101支付宝架构师:从工程师到架构师的成长之路- http://blog.csdn.net/ak47java/article/details/78701226...

  • 【RPC框架之Zeroc ICE 介绍】

    二、微服务架构的优点 先天分布式 无状态(尽量) 积木式发展   三、 单体应用 通俗地讲,“单体应用(monolith application)”就是将应用程序的所有功能都打包成一个独立的单元,即主要业务逻辑都...

  • Python 全栈系列98 - 提供商业接口服务的架构考虑

    接口服务是一种产品,产品要考虑人性(的弱点),也就是“七宗罪” 七宗罪(拉丁语:septem peccata mortalia;英语:seven deadly sins),天主教称七罪宗,或称七大罪或七原罪,属于天主教教义中对人类恶行的...

  • InfoQ在新兴技术企业大会上对Lightbend企业架构师Kiki Carter的访谈

    Kiki Carter,Lightbend企业架构师,在2017新兴技术企业大会(Emerging Technologies for the Enterprise,ETE)上发表了题为“Somm”Lagom: Building Systems That Age Like Wine的演讲。\\“Somm”取自2012年的...

  • 国内有哪些顶级技术团队的博客值得推荐?

    优质文章推荐: 后端开发实践——开发者的第 0 个迭代 后端开发实践系列——领域驱动设计(DDD)编码实践 写了十年技术博客,我收获了什么 重构的七宗罪 小米信息部技术团队 小米信息部技术团队是小米旗下的一个技术...

  • “编程不规范,同事两行泪!”

    虎牙直播在微服务改造方面的实践和总结 有赞搜索系统的架构演进 为什么分库分表后不建议跨分片查询 别看不起分区表:我要为你点个赞 Spring Cloud Greenwich 正式发布 在前后端分离的路上承受了多少痛? 你真的会...

  • 2016企业开发趋势:Lightbend关于JVM开发者的调查

    SOA与微服务之争的真正答案应该是它们分别适合于不同的解决方案,但因为产生的应用程序数量要远远多于企业架构的数量,因此微服务框架就显得比ESB更适合于你的项目。 \u0026#xD; \u0026#xD;\u0026#xD; Payara 和 C2...

  • 程序员如何让自己的技术能力突飞猛进?

    Spring 代码…,当你进入到大师的作品中时,你可能就是下个踩在巨人肩膀上的人,大量的面试题及答案还有资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,...

  • Web API 开发接口

    微服务架构也有不足。 需要对其进行运维,微服务之间需要协作,它们可能会按照与大型单体应用不同的节奏进行演化。在这样一个分布式系统中,维护所有服务之间的一致性并不简单。 众多微服务之间的通信可能会因为 ...

  • 安装NumPy教程-详细版

    附件是安装NumPy教程_详细版,文件绿色安全,请大家放心下载,仅供交流学习使用,无任何商业目的!

  • 语音端点检测及其在Matlab中的实现.zip

    语音端点检测及其在Matlab中的实现.zip

  • C#文档打印程序Demo

    使用C#完成一般文档的打印,带有页眉,页脚文档打印,表格打印,打印预览等

  • DirectX修复工具-4-194985.zip

    directx修复工具 DirectX修复工具(DirectX repair)是系统DirectX组件修复工具,DirectX修复工具主要是用于检测当前系统的DirectX状态,若发现异常情况就可以马上进行修复,非常快捷,使用效果也非常好。

  • Python手动实现人脸识别算法

    人脸识别的主要算法 其核心算法是 欧式距离算法使用该算法计算两张脸的面部特征差异,一般在0.6 以下都可以被认为是同一张脸 人脸识别的主要步骤 1 获得人脸图片 2 将人脸图片转为128D的矩阵(这个也就是人脸特征的一种数字化表现) 3 保存人脸128D的特征到文件中 4 获取其他人脸转为128D特征通过欧式距离算法与我们保存的特征对比,如果差距在0.6以下就说明两张脸差距比较小

  • 全国大学生信息安全竞赛知识问答-CISCN 题库.zip

    ciscn 全国大学生信息安全竞赛知识问答-CISCN 题库.zip

  • JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译).zip

    JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)JAVA+SQL离散数学题库管理系统(源代码+LW+外文翻译)

  • strcmp函数应用.zip

    strcmp函数应用.zip

Global site tag (gtag.js) - Google Analytics